﻿
namespace Behemoth.SharePoint.Branding {

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using Behemoth.Configuration;
    using Behemoth.SharePoint.Configuration;
    using Microsoft.SharePoint;

    public class BrandingProperties : SPFeaturePropertyReaderBase {

        public BrandingProperties(SPFeatureReceiverProperties props) : base(props) { }

        #region Theme Properties

        private bool _applyTheme = true;
        [StrongTypeConfigEntryAttribute(true)]
        public bool ApplyTheme {
            get { return _applyTheme; }
            set { _applyTheme = value; }
        }

        private bool _applyThemeWithMaster = true;
        [StrongTypeConfigEntryAttribute(true)]
        public bool ApplyThemeWithMasterPage
        {
            get { return _applyThemeWithMaster; }
            set { _applyThemeWithMaster = value; }
        }

        private string _themeName = string.Empty;
        [StrongTypeConfigEntryAttribute(true)]
        public string ThemeName {
            get { return _themeName; }
            set { _themeName = value; }
        }

        private string _themeDisplayName = string.Empty;
        [StrongTypeConfigEntryAttribute(true)]
        public string ThemeDisplayName {
            get { return _themeDisplayName; }
            set { _themeDisplayName = value; }
        }

        private string _themeDescription = string.Empty;
        [StrongTypeConfigEntryAttribute(true)]
        public string ThemeDescription {
            get { return _themeDescription; }
            set { _themeDescription = value; }
        }

        private string _themePreviewImageName = string.Empty;
        [StrongTypeConfigEntryAttribute(true)]
        public string ThemePreviewImageName {
            get { return _themePreviewImageName; }
            set { _themePreviewImageName = value; }
        }

        #endregion
        #region Master Page Properties

        private bool _enableDeleteGalleryFilesOnDeactivation = true;
        [StrongTypeConfigEntryAttribute(true)]
        public bool EnableDeleteGalleryFilesOnDeactivation
        {
            get { return _enableDeleteGalleryFilesOnDeactivation; }
            set { _enableDeleteGalleryFilesOnDeactivation = value; }
        }

        private bool _enableResetMasterOnDeactivation = true;
        [StrongTypeConfigEntryAttribute(true)]
        public bool EnableResetMasterOnDeactivation
        {
            get { return _enableResetMasterOnDeactivation; }
            set { _enableResetMasterOnDeactivation = value; }
        }

        private bool _enableResetMasterOnActivation = true;
        [StrongTypeConfigEntryAttribute(true)]
        public bool EnableResetMasterOnActivation
        {
            get { return _enableResetMasterOnActivation; }
            set { _enableResetMasterOnActivation = value; }
        }

        private string _masterResetBaseUrl = "/sites/masterpagetest";
        [StrongTypeConfigEntryAttribute(true)]
        public string MasterResetBaseUrl
        {
            get { return _masterResetBaseUrl; }
            set { _masterResetBaseUrl = value; }
        }

        private string _defaultMasterUrl = "/_catalogs/masterpage/default.master";
        [StrongTypeConfigEntryAttribute(true)]
        public string DefaultMasterUrl
        {
            get { return _defaultMasterUrl; }
            set { _defaultMasterUrl = value; }
        }

        private string _customizedMasterUrl = "/_catalogs/masterpage/Custom.master";
        [StrongTypeConfigEntryAttribute(true)]
        public string CustomizedMasterUrl
        {
            get { return _customizedMasterUrl; }
            set { _customizedMasterUrl = value; }
        }

        private string _previewImageName = "Prview.png";
        [StrongTypeConfigEntryAttribute(true)]
        public string MasterPagePreviewImageName
        {
            get { return _previewImageName; }
            set { _previewImageName = value; }
        }

        private string _subFolder1 = "en-us";
        public string MasterGallerySubFolder1
        {
            get { return _subFolder1; }
            set { _subFolder1 = value; }
        }

        private string _subFolder2 = "Preview Images";
        public string MasterGallerySubFolder2
        {
            get { return _subFolder2; }
            set { _subFolder2 = value; }
        }

        #endregion

    } // class

} // namespace
